Importing the required library.
library(tidyverse)
library(plotly)
library(sf) # For spatial data
library(ggplot2)
Loading the data from the data directory and reading it through the
imported library.
birth_data_url <- "../data/us_births_00_14.csv"
births <- read.csv(birth_data_url, stringsAsFactors = FALSE)
filtering data to create plot
monthly_births <- births %>%
group_by(year, month) %>%
summarize(total_births = sum(births), .groups = 'drop') %>%
mutate(date = as.Date(paste(year, month, "01", sep = "-")),
month_name = format(date, "%B"))
Visualization 2 - Linear Model: Total Births Over Years
generating interactive plot from the filtered data
plot <- plot_ly(monthly_births, x = ~year, y = ~total_births, type = 'scatter', mode = 'lines+markers', text = ~paste("Year:", year, "<br>Month:", month_name, "<br>Total Births:", total_births),
hoverinfo = 'text') %>%
layout(
title = "Total Monthly Births in the US (2000-2014)",
xaxis = list(title = "Year"),
yaxis = list(title = "Total Births")
)
plot
Visualization 2 - Linear model: Predicting total births based on
year
Linear model: Predicting total births based on year
model <- lm(total_births ~ year, data = monthly_births)
Summary of the model
summary(model)
Call:
lm(formula = total_births ~ year, data = monthly_births)
Residuals:
Min 1Q Median 3Q Max
-44575 -12125 57 13426 50872
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2361462 624179 3.783 0.000211 ***
year -1004 311 -3.230 0.001475 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 18030 on 178 degrees of freedom
Multiple R-squared: 0.05536, Adjusted R-squared: 0.05005
F-statistic: 10.43 on 1 and 178 DF, p-value: 0.001475
Plot the model with ggplot2
ggplot(monthly_births, aes(x = year, y = total_births)) +
geom_point() +
geom_smooth(method = "lm", col = "#532D8E") +
labs(title = "Linear Model: Total Births Over Years", x = "Year", y = "Total Births") +
theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

Visualization 3 - Lakes in Florida
Reading the shape file from the data directory
lakes <- st_read("../data/Florida_Lakes/Florida_Lakes.shp")
Reading layer `Florida_Lakes' from data source
`C:\Users\desdiv10\Documents\Assignments\Data Visualization\workspace\dataviz_final_project\data\Florida_Lakes\Florida_Lakes.shp'
using driver `ESRI Shapefile'
Simple feature collection with 4243 features and 6 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -87.42774 ymin: 25.02625 xmax: -80.03097 ymax: 31.00254
Geodetic CRS: WGS 84
mapping lakes to the florida map using red color
ggplot() +
geom_sf(data = lakes, fill = "red", color = "black") +
ggtitle("Lakes in Florida") +
theme_minimal()

LS0tDQp0aXRsZTogIkludGVyYWN0aXZlIFZpc3VhbGl6YXRpb24gb2YgVVMgTW9udGhseSBCaXJ0aCBEYXRhICgyMDAwLTIwMTQpIGFsb25nIHdpdGggcHJlZGVjdGlvbiBzY2F0dGVyIHBsb3QgJiBMYWtlcyBpbiBGbG9yaWRhIC0gU3BhdGlhbCBWaXN1bGl6YXRpb24iDQphdXRob3I6ICJEaXZ5ZXNoIERlc2FpIC0gYGRkZXNhaTc2NTZAZmxvcmlkYXBvbHkuZWR1YCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoqKioNCg0KPiBJbXBvcnRpbmcgdGhlIHJlcXVpcmVkIGxpYnJhcnkuDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoc2YpICMgRm9yIHNwYXRpYWwgZGF0YQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYGBgDQoNCj4gTG9hZGluZyB0aGUgZGF0YSBmcm9tIHRoZSBkYXRhIGRpcmVjdG9yeSBhbmQgcmVhZGluZyBpdCB0aHJvdWdoIHRoZSBpbXBvcnRlZCBsaWJyYXJ5Lg0KDQoNCmBgYHtyfQ0KYmlydGhfZGF0YV91cmwgPC0gIi4uL2RhdGEvdXNfYmlydGhzXzAwXzE0LmNzdiINCmJpcnRocyA8LSByZWFkLmNzdihiaXJ0aF9kYXRhX3VybCwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQ0KYGBgDQoNCj4gZmlsdGVyaW5nIGRhdGEgdG8gY3JlYXRlIHBsb3QNCg0KYGBge3J9DQptb250aGx5X2JpcnRocyA8LSBiaXJ0aHMgJT4lDQogIGdyb3VwX2J5KHllYXIsIG1vbnRoKSAlPiUNCiAgc3VtbWFyaXplKHRvdGFsX2JpcnRocyA9IHN1bShiaXJ0aHMpLCAuZ3JvdXBzID0gJ2Ryb3AnKSAlPiUNCiAgICBtdXRhdGUoZGF0ZSA9IGFzLkRhdGUocGFzdGUoeWVhciwgbW9udGgsICIwMSIsIHNlcCA9ICItIikpLA0KICAgICAgICAgbW9udGhfbmFtZSA9IGZvcm1hdChkYXRlLCAiJUIiKSkNCmBgYA0KDQojIyMgVmlzdWFsaXphdGlvbiAyIC0gTGluZWFyIE1vZGVsOiBUb3RhbCBCaXJ0aHMgT3ZlciBZZWFycw0KDQoNCj4gZ2VuZXJhdGluZyBpbnRlcmFjdGl2ZSBwbG90IGZyb20gdGhlIGZpbHRlcmVkIGRhdGENCg0KYGBge3J9DQpwbG90IDwtIHBsb3RfbHkobW9udGhseV9iaXJ0aHMsIHggPSB+eWVhciwgeSA9IH50b3RhbF9iaXJ0aHMsIHR5cGUgPSAnc2NhdHRlcicsIG1vZGUgPSAnbGluZXMrbWFya2VycycsIHRleHQgPSB+cGFzdGUoIlllYXI6IiwgeWVhciwgIjxicj5Nb250aDoiLCBtb250aF9uYW1lLCAiPGJyPlRvdGFsIEJpcnRoczoiLCB0b3RhbF9iaXJ0aHMpLCANCiAgICAgICAgICAgICAgICBob3ZlcmluZm8gPSAndGV4dCcpICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSAiVG90YWwgTW9udGhseSBCaXJ0aHMgaW4gdGhlIFVTICgyMDAwLTIwMTQpIiwNCiAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiWWVhciIpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJUb3RhbCBCaXJ0aHMiKQ0KICApDQpwbG90DQpgYGANCg0KIyMjIFZpc3VhbGl6YXRpb24gMiAtIExpbmVhciBtb2RlbDogUHJlZGljdGluZyB0b3RhbCBiaXJ0aHMgYmFzZWQgb24geWVhcg0KDQoNCj4gTGluZWFyIG1vZGVsOiBQcmVkaWN0aW5nIHRvdGFsIGJpcnRocyBiYXNlZCBvbiB5ZWFyDQoNCg0KYGBge3J9DQptb2RlbCA8LSBsbSh0b3RhbF9iaXJ0aHMgfiB5ZWFyLCBkYXRhID0gbW9udGhseV9iaXJ0aHMpDQpgYGANCg0KDQo+IFN1bW1hcnkgb2YgdGhlIG1vZGVsDQoNCmBgYHtyfQ0Kc3VtbWFyeShtb2RlbCkNCmBgYA0KDQoNCj4gUGxvdCB0aGUgbW9kZWwgd2l0aCBnZ3Bsb3QyDQoNCg0KYGBge3J9DQpnZ3Bsb3QobW9udGhseV9iaXJ0aHMsIGFlcyh4ID0geWVhciwgeSA9IHRvdGFsX2JpcnRocykpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sID0gIiM1MzJEOEUiKSArDQogIGxhYnModGl0bGUgPSAiTGluZWFyIE1vZGVsOiBUb3RhbCBCaXJ0aHMgT3ZlciBZZWFycyIsIHggPSAiWWVhciIsIHkgPSAiVG90YWwgQmlydGhzIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoNCiMjIyBWaXN1YWxpemF0aW9uIDMgLSBMYWtlcyBpbiBGbG9yaWRhDQoNCg0KPiBSZWFkaW5nIHRoZSBzaGFwZSBmaWxlIGZyb20gdGhlIGRhdGEgZGlyZWN0b3J5DQoNCmBgYHtyfQ0KbGFrZXMgPC0gc3RfcmVhZCgiLi4vZGF0YS9GbG9yaWRhX0xha2VzL0Zsb3JpZGFfTGFrZXMuc2hwIikNCmBgYA0KDQo+IG1hcHBpbmcgbGFrZXMgdG8gdGhlIGZsb3JpZGEgbWFwIHVzaW5nIHJlZCBjb2xvcg0KDQpgYGB7cn0NCmdncGxvdCgpICsNCiAgZ2VvbV9zZihkYXRhID0gbGFrZXMsIGZpbGwgPSAicmVkIiwgY29sb3IgPSAiYmxhY2siKSArDQogIGdndGl0bGUoIkxha2VzIGluIEZsb3JpZGEiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBg